#include <iostream>
using namespace std;

class Solution {
public:
    int uniquePaths(int m, int n) {

        if (m <= 1 || n <= 1)
            return 1;

        int sum = 0;
        int dp[m][n];

        for (int i=0; i<m; i++) {
            dp[i][0] = 1;
        }

        for (int j=0; j<n; j++) {
            dp[0][j] = 1;
        }

        for (int i=1; i<m; i++) {
            for (int j=1; j<n; j++) {
                dp[i][j] = dp[i-1][j] + dp[i][j-1];
            }
        }

        return dp[m-1][n-1];
    }

};

int main() {
    int m = 7;
    int n = 3;
    Solution s;
    cout << s.uniquePaths(m,n) << endl;
}
